import { Suspense } from "react" import { Shell } from "@/components/shell" import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" import { getBiddings, getBiddingStatusCounts, } from "@/lib/bidding/service" import { searchParamsCache } from "@/lib/bidding/validation" import { BiddingsPageHeader } from "@/lib/bidding/list/biddings-page-header" import { BiddingsTable } from "@/lib/bidding/list/biddings-table" import { getValidFilters } from "@/lib/data-table" import { type SearchParams } from "@/types/table" export const metadata = { title: "입찰 목록", description: "입찰 공고를 생성하고 진행 상황을 관리할 수 있습니다.", } interface IndexPageProps { searchParams: Promise } export default async function BiddingsPage(props: IndexPageProps) { // ✅ nuqs searchParamsCache로 파싱 (타입 안전성 보장) const searchParams = await props.searchParams const search = searchParamsCache.parse(searchParams) const validFilters = getValidFilters(search.filters) // ✅ 모든 데이터를 병렬로 로드 const promises = Promise.all([ getBiddings({ ...search, filters: validFilters, }), getBiddingStatusCounts(), ]) return ( {/* ═══════════════════════════════════════════════════════════════ */} {/* 페이지 헤더 */} {/* ═══════════════════════════════════════════════════════════════ */} {/* ═══════════════════════════════════════════════════════════════ */} {/* 메인 테이블 */} {/* ═══════════════════════════════════════════════════════════════ */} } > ) }